# 使用官方的Go基础镜像，包含必要的工具和库
FROM golang:1.18-alpine AS build

# 设置工作目录
WORKDIR /app

# 将当前目录下的go.mod和go.sum复制到容器中
COPY go.mod go.sum ./

# 下载依赖
RUN go mod download

# 复制项目代码到容器中
COPY . .

# 构建应用程序
RUN CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -a -o main .

# 使用轻量级的基础镜像
FROM alpine:latest

# 设置工作目录
WORKDIR /root/

# 复制构建好的应用程序到容器中
COPY --from=build /app/main .

# 暴露应用程序端口
EXPOSE 8080

# 运行应用程序
CMD ["./main"]